bitkeeper revision 1.1159.53.4 (412ea0b0d3MOd1UTMgtz-Ab-RIhbkQ)
authoriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>
Fri, 27 Aug 2004 02:47:12 +0000 (02:47 +0000)
committeriap10@labyrinth.cl.cam.ac.uk <iap10@labyrinth.cl.cam.ac.uk>
Fri, 27 Aug 2004 02:47:12 +0000 (02:47 +0000)
linux 2.6.8.1 now correctly accounts system and idle time -- it was testing for ring 0 rather than ring 1.

.rootkeys
linux-2.6.8.1-xen-sparse/arch/xen/i386/kernel/timers/timer_tsc.c
linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/ptrace.h [new file with mode: 0644]

index 797ec86acd2d363796c4cf01d776918aabd5c3a5..bbf5c23855a1a7ced3562e4c81f1c1088f38fca4 100644 (file)
--- a/.rootkeys
+++ b/.rootkeys
 40f5623aEToIXouJgO-ao5d5pcEt1w linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/pgtable-2level.h
 40f5623aCCXRPlGpNthVXstGz9ZV3A linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/pgtable.h
 40f5623aPCkQQfPtJSooGdhcatrvnQ linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/processor.h
+412ea0afQL2CAI-f522TbLjLPMibPQ linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/ptrace.h
 40f5623bzLvxr7WoJIxVf2OH4rCBJg linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/segment.h
 40f5623bG_LzgG6-qwk292nTc5Wabw linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/setup.h
 40f5623bgzm_9vwxpzJswlAxg298Gg linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/synch_bitops.h
index a872b661a4058038ecfba0cb87b4c581c3921d38..05e370f9325f91c71f1cb89df6ac8028b18876d3 100644 (file)
@@ -355,6 +355,8 @@ static int __init init_tsc(char* override)
 
        rdtscll(alarm);
 
+       use_tsc=1;
+
        return 0;
 }
 
diff --git a/linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/ptrace.h b/linux-2.6.8.1-xen-sparse/include/asm-xen/asm-i386/ptrace.h
new file mode 100644 (file)
index 0000000..0165ccc
--- /dev/null
@@ -0,0 +1,62 @@
+#ifndef _I386_PTRACE_H
+#define _I386_PTRACE_H
+
+#define EBX 0
+#define ECX 1
+#define EDX 2
+#define ESI 3
+#define EDI 4
+#define EBP 5
+#define EAX 6
+#define DS 7
+#define ES 8
+#define FS 9
+#define GS 10
+#define ORIG_EAX 11
+#define EIP 12
+#define CS  13
+#define EFL 14
+#define UESP 15
+#define SS   16
+#define FRAME_SIZE 17
+
+/* this struct defines the way the registers are stored on the 
+   stack during a system call. */
+
+struct pt_regs {
+       long ebx;
+       long ecx;
+       long edx;
+       long esi;
+       long edi;
+       long ebp;
+       long eax;
+       int  xds;
+       int  xes;
+       long orig_eax;
+       long eip;
+       int  xcs;
+       long eflags;
+       long esp;
+       int  xss;
+};
+
+/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
+#define PTRACE_GETREGS            12
+#define PTRACE_SETREGS            13
+#define PTRACE_GETFPREGS          14
+#define PTRACE_SETFPREGS          15
+#define PTRACE_GETFPXREGS         18
+#define PTRACE_SETFPXREGS         19
+
+#define PTRACE_OLDSETOPTIONS         21
+
+#define PTRACE_GET_THREAD_AREA    25
+#define PTRACE_SET_THREAD_AREA    26
+
+#ifdef __KERNEL__
+#define user_mode(regs) ((VM_MASK & (regs)->eflags) || (2 & (regs)->xcs))
+#define instruction_pointer(regs) ((regs)->eip)
+#endif
+
+#endif